package gob.cgr.web.sgrh.service;

import gob.cgr.sgrh.ejb.entidad.ActaEntrega;
import gob.cgr.sgrh.ejb.entidad.AdmGrado;
import gob.cgr.sgrh.ejb.entidad.Ambito;
import gob.cgr.sgrh.ejb.entidad.Cargo;
import gob.cgr.sgrh.ejb.entidad.CondicionEstudio;
import gob.cgr.sgrh.ejb.entidad.CumplimientoDocumentacion;
import gob.cgr.sgrh.ejb.entidad.DatoFamiliar;
import gob.cgr.sgrh.ejb.entidad.Docencia;
import gob.cgr.sgrh.ejb.entidad.Documento;
import gob.cgr.sgrh.ejb.entidad.EstudioBasico;
import gob.cgr.sgrh.ejb.entidad.EstudioProfesional;
import gob.cgr.sgrh.ejb.entidad.FormacionLaboral;
import gob.cgr.sgrh.ejb.entidad.Legajo;
import gob.cgr.sgrh.ejb.entidad.Maestra;
import gob.cgr.sgrh.ejb.entidad.MovimientoDePersonal;
import gob.cgr.sgrh.ejb.entidad.Persona;
import gob.cgr.sgrh.ejb.entidad.Personal;
import gob.cgr.sgrh.ejb.entidad.Puesto;
import gob.cgr.sgrh.ejb.entidad.PuestoCapacitacion;
import gob.cgr.sgrh.ejb.entidad.PuestoEducacion;
import gob.cgr.sgrh.ejb.entidad.SeccionLegajo;
import gob.cgr.sgrh.ejb.entidad.SolicitudDocumento;
import gob.cgr.sgrh.ejb.entidad.SolicitudLegajo;
import gob.cgr.sgrh.ejb.entidad.UnidadOrganica;
import gob.cgr.sgrh.ejb.entidad.Usuario;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public interface SigerhService {
	public List<Ambito> getDepartamentos();
	public List<Ambito> getAmbitosByPdr(int ambCod);
	public Ambito getAmbito(int ambCod);
	public Personal registrarPersonal(Personal personal);
	public void actualizarPersonal(Personal personal);
	public List<Personal> buscarPersonal(Personal p);
	public Personal buscarPersonalPorDNI(String dni);
	public Persona buscarPersona(String dni);
	public Persona cargarPersonaCompleta(Integer idPersona);
	public void agregarFamiliar(DatoFamiliar dato);
	public void agregarEstudiosBasicos(EstudioBasico ebasico);
	public void agregarEstudiosProfesionales(EstudioProfesional eprof);
	public List<Maestra> listarTiposParentezco();
	public Personal cargarDatosCompletos(Personal p);
	public void quitarFamiliar(DatoFamiliar dato);
	public void quitarEstudiosBasicos(EstudioBasico ebasico);
	public void quitarEstudiosProfesionales(EstudioProfesional eprof);
	public void agregarFormacionLaboral(FormacionLaboral formacion);
	public void quitarFormacionLaboral(FormacionLaboral formacion);
	public List<AdmGrado> listarGradosAcademicos();
	public List<CondicionEstudio> listarCondicionEstudios();
	public List<Documento> listarDocumentosDeSolicitud();
	public List<Documento> listarDocumentosObligatorios();
	public void registrarSolicitudDocumento(SolicitudDocumento sol);
	public SolicitudDocumento actualizarSolicitudDocumento(SolicitudDocumento sol);
	public Usuario validarUsuario(Usuario user);
	public List<SolicitudDocumento> listarConsultaSolicitudes(
			Integer idPersonal, Date desde, Date hasta, String estado);
	public List<CumplimientoDocumentacion> listarCumplimiento(Persona p);
	public void actualizarCumplimientoDocumentacion(List<CumplimientoDocumentacion> documentacion);
	public List<UnidadOrganica> listarUnidadesOrganicas();
	public List<Puesto> listarPuestos(Integer idCargo);
	public List<Cargo>listarCargos();
	public List<MovimientoDePersonal> listarMovimientosPersonal(Integer idPersonal);
	public void actualizarMovimientoPersonal(MovimientoDePersonal movimiento);
	public void agregarDocencia(Docencia docencia);
	public void quitarDocencia(Docencia docencia);
	public List<Docencia> listarDocencias(Integer idPersona);
	public List<SeccionLegajo> listarSeccionesLegajo();
	public List<FormacionLaboral> listarFormacionLaboralPersona(Integer idPersona);
	public List<Legajo> listarLegajoPersonal(Integer idPersonal,
			Integer seccionLegajo);
	public void actualizarLegajo(Legajo legajo);
	public void eliminarLegajo(Legajo legajo);
	public List<Documento> listarDocumentosPorTipo(String tipo);
	public Legajo obtenerLegajo(Integer idLegajo);
	public void actualizarCumplimientoDocumentacion(
			CumplimientoDocumentacion documentacion) ;
	public void solicitarActualizarLegajo(SolicitudLegajo s,Legajo l);
	public void eliminarSolicitudLegajo(SolicitudLegajo s);
	public List<SolicitudLegajo> listarSolicitudesDeLegajo(Integer idPersona, Date desde,Date hasta, String estado);
	public SolicitudLegajo obtenerSolicitudLegajo(Integer idSolicitudLegajo);
	public void actualizarSolicitudLegajo(SolicitudLegajo s);
	public List<SeccionLegajo> listarSeccionesLegajoParaSolicitud();
	public List<ActaEntrega> listarActasEntregas(Integer idPersonal, Date desde,Date hasta, String estado);
	public ActaEntrega obtenerActaEntrega(Integer idActaEntrega);
	public ActaEntrega registrarActaEntrega(ActaEntrega acta);
	public ActaEntrega actualizarActaEntrega(ActaEntrega acta);
	public void eliminarActaEntrega(ActaEntrega acta);
	public List<Maestra> listarMotivosActaEntrega();
	public UnidadOrganica registrarUnidadOrganica(UnidadOrganica uo);
	public UnidadOrganica actualizarUnidadOrganica(UnidadOrganica uo);
	public UnidadOrganica obtenerUnidadOrganica(Integer uoId);
	public List<Puesto> listarPuestosPorUnidadOrganica(Integer idUnidadOrganica);
	public Puesto registrarPuesto(Puesto puesto);
	public Puesto actualizarPuesto(Puesto puesto);
	public Puesto obtenerPuesto(Integer idPuesto);
	public PuestoEducacion actualizarPuestoEducacion(PuestoEducacion pe);
	public PuestoCapacitacion actualizarPuestoCapacitacion(PuestoCapacitacion pe);
	public void eliminarPuestoEducacion(PuestoEducacion pe);
	public void eliminarPuestoCapacitacion(PuestoCapacitacion pe);
}
